import { defineStore } from 'pinia';
import curdUtils from "/@/stores/ums/customer/curdUtils";
import {customerFieldStateApi as api} from "/@/api/ums/customer/fieldStateApi";
import {ElMessage} from "element-plus";


/**
 * 行为行动记录 - 全局缓存
 */
export const actionStatisticCache = defineStore('actionStatistic', {
	state: ():any => ({
		// 行为行动记录统计 - 列表
		list: [],
		// 行为行动记录统计列表  - get 加载的锁
		lock: false,
		// 类型
		type: 2,
		// 标题
		title: '行为行动记录统计'
	}),
	actions: {

		/** 获取 - 行为行动记录统计列表 */
		getList(){
			// 检查是否有数据
			if (this.isLoad(this.lock, this.list)) {
				this.lock = true
				this.loadList()
			}
			return this.list
		},

		/** 加载 - 行为行动记录统计列表 */
		async loadList(){
			try{
				const params = {'type': this.type};
				const {data} = await api().query(params);
				// 清除重新加载
				this.checkReset(this.list)
				// 增量加载 - 直接赋值会导致引用失效
				this.list.push(...data);
			}catch (e:any){
				console.log('获取'+this.title+'列表异常捕获\n',e);
				ElMessage.error(e.message)
			}
			this.lock = false
		},

		/** 批量修改显示或隐藏 - 行为行动记录统计列表  */
		async batchVisibleByIds(ids:any){
			await this.batchVisible(ids, this.type, api, this.loadList, this.title)
		},

		init(){
			if (this.isLoad(this.lock, this.list)) {
				this.lock = true
				this.loadList()
			}
		},

		// 公共方法
		...curdUtils
	},
});



